package com.haidong.web;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

/**
 * 了解servlet的使用
 * servlet是被tomcat中的容器创建并调用的
 * 在创建初期会调用一次init方法,销毁会调用destroy方法
 *
 */
//写webServlet注解的时候可以加上第二个参数,是用来定义创建时间的
//负整数表示第一次访问时创建,0和正整数表示启动服务器时创建,数字小优先级高
@WebServlet(urlPatterns = "/demo1",loadOnStartup = -1)
public class servletDemo1 implements Servlet {
    private ServletConfig config;
    /**
     * 初始化方法的调用时机默认在第一次访问时调用
     * 非默认情况下,会在随着服务器启动的时候调用
     * @param servletConfig
     * @throws ServletException
     */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        this.config = servletConfig;
        System.out.println("现在这个方法会随着服务器开机初始化.");
    }

    @Override
    public ServletConfig getServletConfig() {
        return this.config;
    }

    /**
     * 调用时机:每次访问该servlet
     * 多次调用
     * @param servletRequest
     * @param servletResponse
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("这个函数会被多次调用");
    }

    /**
     * 这个方法返回servlet的信息,没啥用直接返回null
     * @return
     */
    @Override
    public String getServletInfo() {
        return "";
    }

    /**
     * 这个函数会在servlet消亡的时候被调用一次
     */
    @Override
    public void destroy() {
        System.out.println("kill servlet!");
    }
}
